Провайдер Entity Framework 6
Примечание
Поддержка остановлена, использовать не рекомендуется.
Для использования Linter с Entity Framework 6 необходимо добавить в проект зависимости на пакеты
EntityFramework, EntityFramework.Linter и System.Data.LinterClient при помощи менеджера пакетов NuGet, зарегистрировать и сконфигурировать для испоьлзования классы LinterClientFactory и LinterProviderServices. После этого можно использовать стандартные методы Entity Framework для разработки приложения. Например, следующая программа сохраняет в БД время запуска и
выводит на экран список всех запусков. Данный пример можно использовать для создания журнала посещений, где каждый запуск приложения соответствует визиту одного человека:
// C#
using System;
using System.Data.Entity;
namespace CodeFirstDemo
{
class Program
{
static void Main(string[] args)
{
// Регистрация фабрики классов провайдера
DbConfiguration.SetConfiguration(new LinterContextConfiguration());
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.LinterClient");
DbConnectionStringBuilder builder = factory.CreateConnectionStringBuilder();
builder.ConnectionString = "Data Source=LOCAL;User ID=SYSTEM;Password=MANAGER8";
DbConnection con = factory.CreateConnection();
con.ConnectionString = builder.ToString();
con.Open();
using (var context = new VisitContext(con))
{
// Подключение к БД и создание таблицы, если она не существует
context.Database.CreateIfNotExists();
// Добавление новой записи и сохранение изменений
context.Visits.Add(
new Visit { Name = "Пользователь A", Date = DateTime.Now });
context.SaveChanges();
// Чтение записей из БД
Console.WriteLine("Список визитов:");
foreach (var visit in context.Visits)
{
Console.WriteLine(visit.Id + " | " + visit.Name + " | " + visit.Date);
}
Console.WriteLine("Для продолжения нажмите любую клавишу...");
Console.ReadKey();
}
}
}
class LinterContextConfiguration : DbConfiguration
{
public LinterContextConfiguration()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
DbProviderFactories.RegisterFactory("System.Data.LinterClient", typeof(LinterClientFactory));
SetProviderServices("System.Data.LinterClient", LinterProviderServices.Instance);
}
};
public class VisitContext : DbContext
{
public VisitContext(DbConnection con) : base(con, true)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.HasDefaultSchema("SYSTEM");
}
public DbSet<Visit> Visits { get; set; }
}
}
При первом запуске приложения в БД будет создана схема "SYSTEM" и таблица "SYSTEM"."Visits", если запуск производится на платформе, поддерживаемой миграциями EF6.
Таблицу также можно создать на этапе разработки приложения с помощью автоматических миграций Code First Migrations. Для этого в меню Visual Studio выбрать Tools(Сервис)=>NuGet Package Manager(Диспетчер пакетов NuGet)=>Package Manager Console(Консоль диспетчера пакетов) и в появившемся окне после приглашения PM> ввести команды:
PM> Enable-Migrations -EnableAutomaticMigrations
PM> Add-Migration Visit_create
PM> Update-Database
Примечание
Если контекст унаследован от класса ObjectContext, то методы CreateDatabase() и DeleteDatabase() выполняют создание и удаление таблиц БД соответственно.
Если контекст унаследован от класса DbContext, то удаление таблиц методом DeleteDatabase() не поддерживается в текущей версии.